<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2">
    <title>Dump commands of &micro;Csim</title>
  </head>

  <body style="background-color: white;">

    <h2>Dump commands of &micro;Csim</h2>

    <a name="dump">
      <h3>dump <i>[/format] memory_type [start [end [bytes_per_line]]]</i>
        <br>
        dump <i>bit...</i></h3>
    </a>
    
    The first form can be used to get the contents of memory while the
    second form can be used to check the value of one or more bits.
    
    <blockquote>
      <a name="dump_memory">
        <h4>dump <i>[/format] memory_name [start [end
            [bytes_per_line]]]</i></h4>
      </a>

      Dump a memory region.

      <p>The optional <b>/format</b> specifies how memory is dumped.

	<dl>

	  <dt><b>/b</b> - binary</dt>
          <dd>Dumps raw binary data. The output must be redirected to
            a file.</dd>
	  
          <dt><b>/h</b> - hexadecimal</dt>
          <dd>Dumps data in a tabular hexadecimal format with an
              accompanying table of equivalent characters to the
              right.</dd>

	  <dt><b>/i</b> - ihex</dt>
          <dd>Dumps data in ihex format.</dd>
	  
          <dt><b>/s</b> - string</dt>
          <dd>Dumps a single, null terminated string starting
            at <b>start</b>.</dd>
	  
	</dl>
	
      If no <b>format</b> is given dump uses a "smart" mode. This will
      disassemble where the <a href="analyzer.html"> code analyzer</a>
      has identified executable code otherwise it is similar to the
      hexadecimal format except that where labels (vars that name an
      address) are found they are shown between the address and data
      and where HW registers (vars that name an address AND specify
      the full bit range) are found that address is shown on a line of
      its own and the data is given as binary, character, hex,
      unsigned decimal and, if the high bit is set, signed
      decimal. Note that smart mode only applies if
      <b>memory_name</b> is an address space since vars can only be set for
      cells within an address space. If <b>memory_name</b> is a chip the
      output is the same as hexadecimal (<b>/h</b>) output.
      </p>
      
      <p><b>memory_name</b> specifies memory. It can be the name of an
      address space or a chip, and can be checked
      using <a href="cmd_general.html#info_memory">info memory</a>
      command which lists size and name of all available memories.
      </p>
      
      <p><b>start</b> and <b>end</b> parameters can be used to specify
        the first and last address of the dumped region. If <b>end</b>
        is omitted then 64 memory locations are dumped. If
        both <b>start</b> and <b>end</b> are omitted then the next 64
        memory locations will be dumped out. Every time when dump
        command is used the address of the last dumped memory location
        is stored and next dump command automatically continues at the
        next address.
      </p>
      
      <p><b>bytes_per_line</b> can be used to specify how many memory
        locations should be dumped out in one line. It is 8 by
        default.
      </p>
      
      <pre>$ <font color="#118811">ucsim_51</font>
uCsim 0.6-pre34, Copyright (C) 1997 Daniel Drotos.
uCsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
&gt; <font color="#118811">dump regs</font>
regs[0x0]      R0         0b00001000 0x08 '.'   8
regs[0x1]      R1         0b01110000 0x70 'p' 112
regs[0x2]      R2         0b11010100 0xd4 '.' 212 (212)
regs[0x3]      R3         0b10110010 0xb2 '.' 178 (178)
regs[0x4]      R4         0b10001010 0x8a '.' 138 (138)
regs[0x5]      R5         0b00101001 0x29 ')'  41
regs[0x6]      R6         0b01010100 0x54 'T'  84
regs[0x7]      R7         0b01001000 0x48 'H'  72
&gt; <font color="#118811">dump rom 0</font>
0x0000            00 00 00 00 00 00 00 00 ........
0x0008            00 00 00 00 00 00 00 00 ........
0x0010            00 00 00 00 00 00 00 00 ........
0x0018            00 00 00 00 00 00 00 00 ........
0x0020            00 00 00 00 00 00 00 00 ........
0x0028            00 00 00 00 00 00 00 00 ........
0x0030            00 00 00 00 00 00 00 00 ........
0x0038            00 00 00 00 00 00 00 00 ........
0x0040            00 00 00 00 00 00 00 00 ........
0x0048            00 00 00 00 00 00 00 00 ........
&gt; <font color="#118811">var label1 rom 0x0016</font>
&gt; <font color="#118811">var reg1 rom[0x0020][7:0]</font>
&gt; <font color="#118811">var reg2 rom[0x0021][7:0]</font>
&gt; <font color="#118811">dump rom 0</font>
0x0000            00 00 00 00 00 00 00 00 ........
0x0008            00 00 00 00 00 00 00 00 ........
0x0010            00 00 00 00 00 00       ......
0x0016 label1     00 00 00 00 00 00 00 00 ........
0x001e            00 00                   ..
0x0020 reg1       0b00000000 0x00 '.'   0
0x0021 reg2       0b00000000 0x00 '.'   0
0x0022            00 00 00 00 00 00 00 00 ........
0x002a            00 00 00 00 00 00 00 00 ........
0x0032            00 00 00 00 00 00 00 00 ........
0x003a            00 00 00 00 00 00 00 00 ........
0x0042            00 00 00 00 00 00 00 00 ........
0x004a            00 00 00 00 00 00       ......
&gt;
</pre>

      <pre>$ <font color="#118811">ucsim_51</font>
ucsim 0.2.38-pre2, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
&gt; 55470 words read from remo.hex
55470 words read from remo.hex
&gt; <font color="#118811">run</font>
Simulation started, PC=0x000000

Stop at 0x000515: (105) User stopped
F 0x000515
&gt; <font color="#118811">du rom 20</font>
0x0014 00 ac ff ff ff ff ff ff ........
0x001c ff ff ff ff ff ff ff 02 ........
0x0024 01 1c ff ff ff ff ff 32 .......2
0x002c ff ff ff ff 02 0f a7 02 ........
0x0034 0e 9c 02 0d d2 02 08 41 .......A
0x003c c0 82 c0 83 c0 d0 c0 e0 ........
0x0044 c0 00 a2 90 c0 d0 c2 90 ........
0x004c 78 18 06 30 03 4b 20 92 x..0.K .
0x0054 48 30 07 05 c2 07 02 00 H0......
0x005c 9d 30 08 05 20 93 3a c2 .0.. .:.
&gt; <font color="#118811">du xram 10 20 10</font>
0x000a ff 01 00 fa 01 01 40 01 01 44 ......@..D
0x0014 01                            .
&gt; <font color="#118811">du xram</font>
0x0015 00 00 00 00 00 00 00 00 ........
0x001d 00 10 01 00 ae 01 00 ae ........
0x0025 02 12 e1 00 5a 85 00 01 ....Z...
0x002d 00 3b 00 00 5a 85 00 ab .;..Z...
0x0035 1f 80 00 00 01 00 01 00 ........
0x003d fa 0c 02 01 00 fa 00 02 ........
0x0045 00 01 00 ab 00 00 00 00 ........
0x004d 00 00 5a 85 ff 00 01 00 ..Z.....
0x0055 00 00 00 94 a7 01 0c a6 ........
0x005d 00 6f ff 00 00 00 00 00 .o......
&gt;
</pre>


      <hr>

      <a name="dump_bit">
        <h4>dump <i>bit_name...</i></h4>
      </a>This command can be used to print out values of
        bit(s). <a href="syntax.html#bit_param">Any form of bit
        address</a> can be used as parameter:
      
      <pre>0&gt; <font color="#118811">dump AC P1.2 0x21</font>
0xd6      AC:                       0b0 0x00 '.'   0
0x90.2                              0b-----1-- 0x01 '.'   1
0x24.1                              0b------0- 0x00 '.'   0
0&gt; 
      </pre>
    </blockquote>

    <hr>

    <a name="dch">
      <h3>dch <i>[start [stop]]</i></h3>
    </a>

    Hexadecimal dump of code memory area from address <b>start</b> to
    address <b>stop</b>. Default value of start address is address of
    following memory cell which was dumped by previous <b>dch</b>
    command. If <b>stop</b> parameter is not given <b>dch</b> command
    lists 10 lines 8 bytes per line.

    <pre>$ <font color="#118811">ucsim_51 remo.hex</font>
ucsim 0.2.24, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
&gt; <font color="#118811">wc remo</font>
0013da 52 65 6d 6f             Remo
&gt; <font color="#118811">dch 0x13da</font>
0013da 52 65 6d 6f 20 00 56 65 Remo .Ve
0013e2 72 73 69 6f 6e 20 31 2e rsion 1.
0013ea 30 20 00 43 6f 70 79 72 0 .Copyr
0013f2 69 67 68 74 20 28 63 29 ight (c)
0013fa 20 00 31 39 39 34 2c 39  .1994,9
001402 35 20 00 54 61 6c 6b 65 5 .Talke
00140a 72 20 42 74 2e 00 53 75 r Bt..Su
001412 6e 64 61 79 2e 00 4d 6f nday..Mo
00141a 6e 64 61 79 2e 00 54 68 nday..Th
001422 75 65 73 64 61 79 2e 00 uesday..
      &gt; </pre>
    
    First element in every lines is address of first byte dumped out
    in the line. Next elements are hexadecimal values of bytes
    followed by ASCII characters of bytes dumped out in the line. If
    value of the memory cell is not printable than a dot is dumped
    out.
    
    <hr> <a name="dc">
      <h3>dc <i>[start [stop]]</i></h3>
    </a>

    Disassembled dump of code memory area. This command simply
    produces disassembled list of memory area specified by the
    parameters. Default value of <b>start</b> parameter is last
    address listed by previous <b>dc</b> command. If <b>stop</b>
    parameter is not given 20 lines are listed.
    
    <pre>$ <font color="#118811">ucsim_51 remoansi.hex</font> 
ucsim 0.2.12, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
&gt; <font color="#118811">dc</font>
   000000 02 01 60 LJMP  0160
 * 000003 02 00 3c LJMP  003c
 * 000006 ff       MOV   R7,A
 * 000007 ff       MOV   R7,A
 * 000008 ff       MOV   R7,A
 * 000009 ff       MOV   R7,A
 * 00000a ff       MOV   R7,A
 * 00000b 02 3b e0 LJMP  3be0
 * 00000e ff       MOV   R7,A
 * 00000f ff       MOV   R7,A
 * 000010 ff       MOV   R7,A
 * 000011 ff       MOV   R7,A
 * 000012 ff       MOV   R7,A
 * 000013 02 00 ac LJMP  00ac
 * 000016 ff       MOV   R7,A
 * 000017 ff       MOV   R7,A
 * 000018 ff       MOV   R7,A
 * 000019 ff       MOV   R7,A
 * 00001a ff       MOV   R7,A
 * 00001b ff       MOV   R7,A
 * 00001c ff       MOV   R7,A
&gt; </pre>

    <hr>

    <a name="disassemble">
      <h3>disassemble <i>[start [offset [lines]]]</i></h3>
    </a>

    Disassemble code. This command can be used to list disassembled
    instructions which discovered by the <a href="analyzer.html">code
    analyser</a>.  First two parameters specify the address where the
    list starts. First parameter is address where the command starts
    to search an instruction. This search goes forward. When the first
    instruction marked by code analyzer found the simulator skips as
    many instructions as you specify in second
    parameter. If <b>offset</b> is negative the simulator goes
    backward and skips specified number of instructions. Default value
    of <b>start</b> parameter is last address which was listed by
    previous <b>dis</b> command and default value of <b>offset</b> is
    -1. It means you can make continuous list repeating
    parameterless <b>dis</b> command.

    <p>In third parameter you can specify how many instructions you
      want to list. Default value is 20. </p>
    
    <pre>$ <font color="#118811">ucsim_51 remoansi.hex</font>
ucsim 0.2.12, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
&gt; <font color="#118811">dis</font>
   000000 02 01 60 LJMP  0160
   000160 c2 90    CLR   P1.0
   000162 c2 97    CLR   P1.7
   000164 d2 b5    SETB  P3.5
   000166 d2 b4    SETB  P3.4
   000168 75 81 22 MOV   SP,#22
   00016b 75 d0 00 MOV   PSW,#00
   00016e 7e 00    MOV   R6,#00
   000170 7f 00    MOV   R7,#00
   000172 79 04    MOV   R1,#04
   000174 12 0d b8 LCALL 0db8
   000177 0f       INC   R7
   000178 d9 fa    DJNZ  R1,0174
   00017a 75 0b 00 MOV   0b,#00
   00017d 75 0c 00 MOV   0c,#00
   000180 02 02 2a LJMP  022a
   000183 78 22    MOV   R0,#22
   000185 76 00    MOV   @R0,#00
   000187 d8 fc    DJNZ  R0,0185
&gt; <font color="#118811">br 0x180</font>
&gt; <font color="#118811">tbr 0x189</font>
&gt; <font color="#118811">dis 0x180 -3 10</font>
   000178 d9 fa    DJNZ  R1,0174
   00017a 75 0b 00 MOV   0b,#00
   00017d 75 0c 00 MOV   0c,#00
F  000180 02 02 2a LJMP  022a
   000183 78 22    MOV   R0,#22
   000185 76 00    MOV   @R0,#00
   000187 d8 fc    DJNZ  R0,0185
D  000189 22       RET
   00018a 90 09 ec MOV   DPTR,#09ec
   00018d ae 83    MOV   R6,DPH
&gt; </pre>

    If there is an <b>F</b> or <b>D</b> character at the beginning of
    the line, it means that there is a fix or dynamic fetch breakpoint
    at listed address. Next element on the list can be an asterisk
    (<b>*</b>) which means that the listed address is not marked by
    the code analyzer. <b>dis</b> lists marked instructions only so
    asterisk never appears in the list. Next element of the list is
    address displayed as six digit hexadecimal number.  Address is
    followed by hexadecimal dump of instruction's code. Last element
    of the list is disassembled instruction. Every number appeared on
    the list is hexadecimal number.

    <hr> <a name="di">
      <h3>di <i>[start [stop]]</i></h3>
    </a>

    Hexadecimal dump of <b>iram</b> named address space area from
    address
    <b>start</b> to address <b>stop</b>. Default value of start address is
    address of following memory cell which was dumped by previous <b>di</b>
    command. If <b>stop</b> parameter is not given <b>di</b> command lists 10
    lines 8 bytes per line.
    
    <pre>$ <font color="#118811">ucsim_51 remoansi.hex</font>
ucsim 0.5.0-pre3, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
0&gt; <font color="#118811">set opt irq_stop 1</font>
0&gt; <font color="#118811">go</font>
Simulation started, PC=0x000000
Stop at 000023: (5) Interrupt
F 000023
0&gt; <font color="#118811">di</font>
000000 18 02 16 ba 00 02 00 0a ........
000008 00 00 00 00 00 00 00 00 ........
000010 00 00 00 00 00 00 00 00 ........
000018 4a 00 00 00 00 00 00 00 J.......
000020 bc 27 06 2d 02 ee 35 8f .'.-..5.
000028 31 e7 42 01 0e 01 0b 00 1.B.....
000030 ec 0b 7f 10 7f a9 7e 08 ......~.
000038 fe 03 09 00 00 00 af 08 ........
000040 af 08 00 00 00 00 00 00 ........
000048 00 00 00 00 00 00 00 00 ........
0&gt;
</pre>

    <hr> <a name="dx">
      <h3>dx <i>[start [stop]]</i></h3>
    </a>

    Hexadecimal dump of <b>xram</b> named address space area from
    address
    <b>start</b> to address <b>stop</b>. Default value of start address is
    address of following memory cell which was dumped by previous <b>dx</b>
    command. If <b>stop</b> parameter is not given <b>dx</b> command lists 10
    lines 8 bytes per line.

    <pre>$ <font color="#118811">ucsim_51 remoansi.hex</font>
ucsim 0.5.0-pre3, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
0&gt; <font color="#118811">set opt irq_stop 1</font>
0&gt; <font color="#118811">go</font>
Simulation started, PC=0x000000
Stop at 000023: (5) Interrupt
F 000023
0&gt; <font color="#118811">dx 0x100</font>
000100 00 00 00 00 00 00 00 00 ........
000108 00 00 00 00 00 00 00 00 ........
000110 00 00 00 00 00 00 00 00 ........
000118 00 00 00 00 00 00 00 00 ........
000120 00 00 00 00 00 00 00 00 ........
000128 00 00 00 00 00 00 00 44 .......D
000130 61 6e 69 00 00 00 02 02 ani.....
000138 07 00 00 ff 00 00 07 cb ........
000140 08 0c 32 00 07 cb 06 05 ..2.....
000148 02 00 24 00 00 00 00 00 ..$.....
0&gt;
</pre>

    <hr>

    <a name="ds">
      <h3>ds <i>[start [stop]]</i></h3>
    </a>

    Hexadecimal dump of <b>sfr</b> named address space area from
    address <b>start</b> to address <b>stop</b>. Default value of
    start address is address of following memory cell which was dumped
    by previous <b>ds</b> command. If <b>stop</b> parameter is not
    given <b>ds</b> command lists 10 lines 8 bytes per line.

    <pre>$ <font color="#118811">ucsim_51 remo.hex</font>
ucsim 0.5.0-pre3, Copyright (C) 1997 Daniel Drotos, Talker Bt.
ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
58659 bytes read from remoansi.hex
0&gt; <font color="#118811">set opt irq_stop 1</font>
0&gt; <font color="#118811">go</font>
Simulation started, PC=0x000000
Stop at 000023: (5) Interrupt
F 000023
0&gt; <font color="#118811">ds</font>
0x80 ff 2a 1e 13 00 00 00 80 .*......
0x88 d5 21 f7 fd 50 fd 00 00 .!..P...
0x90 fe 00 00 00 00 00 00 00 ........
0x98 7e 0a 00 00 00 00 00 00 ~.......
0xa0 ff 00 00 00 00 00 00 00 ........
0xa8 97 00 00 00 00 00 00 00 ........
0xb0 ff 00 00 00 00 00 00 00 ........
0xb8 15 00 00 00 00 00 00 00 ........
0xc0 00 00 00 00 00 00 00 00 ........
0xc8 00 00 00 00 00 00 00 00 ........
0&gt;
    </pre>
    
    <hr>
  </body>
</html>
